1. Field of the Invention
The present invention relates to a method for controlling congestion in an ATM (Asynchronous Transfer Mode) switching system containing an ABR (Available Bit Rate) service class in which rate control is made between end terminals by using an RM (Resource Management) cell.
2. Description of the Related Art
When an ATM connection for implementing an ABR service class is established between end terminals, a data sending terminal is operated to send data into which an RM cell is inserted periodically to a data receiving terminal. The data to be sent by the data sending terminal is composed of a sum of user data and the RM cell.
The data receiving terminal is operated to send received RM cell back by return to the data sending terminal. In some cases, the RM cell is newly created by an ATM switching system in addition to being created by the data sending terminal. While the RM cell is being sent back to the data sending terminal, the ATM switching system through which the RM cell passes is adapted to write necessary congestion information into the RM cell and the data sending terminal which receives returned RM cell is operated to adaptively adjust an ACR (Allowed Cell Rate) rate being a cell sending rate based on information written in the RM cell and to set an available throughput depending on traffic volume.
FIGS. 8A and 8B are diagrams showing formats of the RM cell defined by ATM Forum, a workgroup on ATM communication.
A first 5 bytes provided in the format are a standard ATM cell header. xe2x80x9cPTI (Payload Type Identifier)=110xe2x80x9d shown in the ATM cell header represents that the cell shown by this format is the RM cell.
A next 1 byte is an RM protocol discriminator used to discriminate a service using the RM cell. To an ABR is assigned xe2x80x9c1xe2x80x9d. A following next 1 byte is a message type region which contains a DIR (Direction) element, BN (Backward explicit congestion Notification) element, CI (Congestion Indicator) element, NI (No Increase) element and RA (Request/Acknowledge) element as shown in FIG. 8B, each of the elements being composed of one bit.
The DIR element shows a direction in which the RM cell flows. If the RM cell flows from the data sending terminal to the data receiving terminal, xe2x80x9c0xe2x80x9d is assigned to the direction, which is referred to as a xe2x80x9cforward directionxe2x80x9d and the RM cell flowing in the forward direction is called a xe2x80x9cforward RM cellxe2x80x9d. If the RM cell flows from the data receiving terminal to the data sending terminal, xe2x80x9c1xe2x80x9d is assigned to the direction, which is referred to as a xe2x80x9cbackward directionxe2x80x9d and the RM cell flowing in the backward direction is called a xe2x80x9cbackward RM cellxe2x80x9d. The data receiving terminal, when receiving the forward RM cell, is operated to change the DIR element to xe2x80x9c1xe2x80x9d and then to send it back to the data sending terminal.
The BN element shows which has created the RM cell. The xe2x80x9c0xe2x80x9d represents that the RM cell has been created by the data sending terminal. The xe2x80x9c1xe2x80x9d represents that the RM cell has been created by the data receiving terminal or a switching section (the ATM switching system).
The CI element is used to inform the terminal of an occurrence of a congestion in a network. The CI is set when a switch detects the congestion or when the data receiving terminal had received a data cell with an EFCI (Explicit Forward Congestion Indication) bit being set to xe2x80x9c1xe2x80x9d. If the CI of the receiving backward RM cell is xe2x80x9c1xe2x80x9d, a sending rate must be reduced by the data sending terminal so as to be lower than that applied when the RM cell was received.
The NI element is used to prevent the data sending terminal from increasing its sending rate. If the NI of the receiving backward RM cell is xe2x80x9c1xe2x80x9d, the sending rate must be kept by the data sending terminal so as not to be higher than that applied when the RM cell was received.
The RA element is a region not defined by the ATM Forum. Others are reserve regions.
The further next 2 bytes are an ER (Explicit Rate) region which first flows at maximum sending rate PCR (Peak Cell Rate) written by the data sending terminal in the forward direction, however, its sending rate is gradually decreased, while being sent back in the backward direction, by a switch on a connection, so as to be one permitted by the ATM switching system.
The next 2 bytes are a CCR (Current Cell Rate) region where a sending rate applied when this cell was sent by the data sending terminal is described. Another next 2 bytes are an MCR (Minimum Cell Rate) where a minimum sending rate set to a connection through which the RM cell flows is described. A further next 2 bytes are a QL (Quality Level) region which is defined by the ATM Forum but not used presently. Also, a further next 2 bytes are an SN (Service Node) region which is defined by the ATM Forum but not used as well. Other remaining reserve fields are idle fields for which a use purpose is not defined.
Each of the ATM switching systems on the ATM connection is adapted to renew resource management information concerning whether there has occurred congestion in the ATM switching system through which the backward RM cell passes, concerning a transfer rate ER (Explicit Rate) applicable for the ATM switching system or like.
If the congestion is judged to occur in the ATM switching system, the CI bit is set to xe2x80x9c1xe2x80x9d. Moreover, if the ATM switching system is provided with a function to calculate the transfer rate ER, it is operated to select either the ER value calculated by the ATM switching system or the ER value already written in the backward RM cell, whichever is smaller, and to store a selected value into the ER region in the backward RM cell.
In an ABR rate control using the ER described above, for the purpose of calculating the ER value, it is necessary to know a state of a logical queue in a cell buffer. However, in a case of a system having a plurality of split cell buffers, since the sending rate is calculated independently for every cell buffer, a following inconvenience occurs. That is, in an ABR connection passing through the cell buffer having a low usage rate, it does not occur that the sending rate happens to be rewritten in the ATM switching system, however, in the ABR connection passing through the cell buffer having a high usage rate, it occurs that the sending rate happens to be rewritten in the ATM switching system having the high usage rate.
Thus, even among the ABR connections passing through a same ATM switching system, if the cell buffers through which above connections pass differ from each other, the sending rate of the cell is also different and, as a result, xe2x80x9cfair sharexe2x80x9d cannot be ensured.
On another hand, by using a shared-memory type ATM switching system having a single cell buffer, the fair share can be ensured even among the ABR connections passing through the same ATM switching system. However, the shared-memory type ATM switching system has a problem in that it is difficult to make its switching capacity large or to increase its cell buffer amount due to factors such as an access speed of a memory used in the cell buffer.
In view of the above, it is an object of the present invention to provide a method for controlling congestion in an ATM switching system composed of a plurality of cell buffers incorporated in order to make its switching capacity large or to increase its cell buffer amount, which can ensure fair share among ABR connections passing through a same ATM switching system.
According to one aspect of the present invention, there is provided a method for controlling congestion in an ATM switching system containing an ABR service class and having a plurality of split input side cell buffer sections and a plurality of split output side buffer sections used to support rate control for congestion control of the ABR service class and to perform delay priority control and discard priority control, including steps of:
monitoring a logical queue length within a cell buffer of each of input side cell buffer sections, writing information about the logical queue length into an idle field of an RM cell or an IRM (Internal Resource Management) cell and transferring the information written in the RM cell or IRM cell to each output side cell buffer sections at a back portion.
In the foregoing, a preferable mode is one that wherein includes a step of calculating a state of congestion of each input side cell buffer section based on information about a logical queue length fed from each of the input side cell buffer sections and of judging which input side cell buffer section is most congested by using a device mounted on each of the output side cell buffers.
Also, a preferable mode is one that wherein includes a step of calculating a state of congestion of each output side cell buffer section itself based on information about a logical queue length of the output side cell buffer section by using a device mounted on each of the output cell buffer sections.
Also, a preferable mode is one that wherein includes steps of:
calculating the state of congestion of each input side cell buffer section based on information about the logical queue length fed from each of the input side cell buffer sections by using the device mounted on each of the output side cell buffer sections;
calculating the state of congestion of each output side cell buffer section based on information about the logical queue length of the output side cell buffer itself by using the device mounted on each of the output side cell buffer sections; and
comparing information about congestion of each input side cell buffer section with information about congestion of the output cell buffer itself and with information about congestion contained in the RM cell or the IRM cell, rewriting the RM cell or the IRM cell with information indicating the most congested state out of three kinds of information about congested states and outputting rewritten the RM cell or the IRM cell by using the device mounted on each of the output side buffer sections.